package com.macro.mall.portal.service;

import com.macro.mall.common.api.CommonPage;
import com.macro.mall.common.api.CommonResult;
import com.macro.mall.model.*;
import com.macro.mall.portal.domain.HomeContentResult;

import java.util.List;

/**
 * 首页内容管理Service
 * Created by macro on 2019/1/28.
 */
public interface HomeService {

    /**
     * 获取首页内容
     */
    HomeContentResult content(Long storeId,Double lon,Double lat);

    /**
     * 首页商品推荐
     * @author 高强更改，加上门店id参数
     * @Date 2020年8月29日
     */
    List<PmsProduct> recommendProductList(Long storeId, Integer pageSize, Integer pageNum);

    /**
     * 获取商品分类
     * @param parentId 0:获取一级分类；其他：获取指定二级分类
     */
    List<PmsProductCategory> getProductCateList(Long parentId);

    /**
     * 根据专题分类分页获取专题
     * @param cateId 专题分类id
     */
    List<CmsSubject> getSubjectList(Long cateId, Integer pageSize, Integer pageNum);

    /**
     * 分页获取人气推荐商品
     * 高强 9.1改，加上店铺id作为参数
     */
    CommonPage<PmsProduct> hotProductList(long storeId, Integer pageNum, Integer pageSize);

    /**
     * 分页获取新品推荐商品
     */
    List<PmsProduct> newProductList(Integer pageNum, Integer pageSize);

    /**
     * 获取当前门店轮播商品
     * @author 高强
     * @Date 2020年8月28日
     * @return
     */
    List<PmsProduct> getCarouselProduct();

    /**
     * 根据用户信息，判断当前用户是否绑定店铺（storeId是否为空），未绑定返回一定范围内多个店铺信息，绑定返回绑定的店铺信息
     * @author 高强
     * @Date 2020年8月31日
     * @param member 用户信息
     * @param lat 纬度
     * @param lon 经度
     * @return 返回一定范围内多个店铺信息/绑定返回绑定的店铺信息
     */
    List<UmsStore> getStoreByUser(UmsMember member,Double lat,Double lon);

    /**
     * 首页显示门店信息
     * @author 高强
     * @Date 2020年9月9日
     * @return
     */
    CommonResult<UmsStore> getStoreInfo();
}
